import { createStore } from 'vuex'
import persist from 'vuex-persistedstate'
// 数据固话插件
export default createStore({
  state: {
    history: [], // 历史记录的数据
    token: "", // 登录成功之后，用户的标识
    cartList: [], // 购物车数据
  },
  mutations: {
    saveHistory(state, val) { // 存储历史记录的事件
      // let bool = state.history.includes(val);
      // if (!bool) {
      //   state.history.unshift(val);
      // }
      let index = state.history.indexOf(val);
      // 查找历史记录的索引
      if (index > -1) { // 判断存在不存在
        state.history.splice(index, 1);
      }
      state.history.unshift(val); // 头部添加数据

      state.history.splice(5, 1); //限制5条数据 大于5条删除
      // if (state.history.length > 5) { //限制5条数据 大于5条删除
      //   state.history.pop();
      // }
    },
    delectall(state) { // 清空历史记录的函数
      state.history = [];
    },
    del(state, i) { // 单个删除的事件
      state.history.splice(i, 1);
    },
    saveToken(state, val) { // 存储token的方法
      state.token = val;
    },
    saveCart(state, val) { // 加入购物车触发的函数
      let index = state.cartList.findIndex(item => item.goods_id == val.goods_id);
      if (index > -1) { // 判断商品是否有重复的
        state.cartList[index].buyNum++;
      } else {
        state.cartList.push(val);
      }
    },
    delCart(state, i) { // 购物车单个删除
      state.cartList.splice(i, 1);
    },
    delectCart(state) { // 选中删除购物车的数据
      // state.cartList.forEach((item, index) => {
      //   if (item.flag) {
      //     state.cartList.splice(index, 1)
      //   }
      // })
      // state.cartList = state.cartList.filter(item => item.flag==false)
      state.cartList = state.cartList.filter(item => !item.flag);
    }
  },
  actions: {
  },
  modules: {
  },
  plugins: [ // 插件是个数组
    new persist({
      storage: window.localStorage,
    }),
  ]
})
